/**
 * @name 程序入口文件
 * @author 子瓜
 * @version 1.1
 * @requires express
 * @description 实现const的批量定义方式
 */
const express = require("express"),/**导入表达程序框架 */
    http = require("http"),/**导入http */
    path = require("path"),/**导入路径模块 */
    template = require("express-art-template"),/**导入表达艺术模板 */
    menuConfig=require("./config/menuConfig"),
    bodyParser=require("body-parser"),
    session=require("express-session");


//导入路由文件
const Stu_h1802Router=require("./routers/Stu_h1802Router");

let app=express();/**取到程序框架 */

app.use(session({
    secret:"asaadasdasdasdad",
    saveUninitialized:false,
    resave:true//是否可以更改里面的值
}));

express.Router();

app.engine("html",template);/**给框架上引擎并告诉它渲染html文件 */
app.set("views",path.join(__dirname,"./views"));/**设置程序框架视图路径 */
app.set("view engine","html");/**告诉视图引擎默认渲染的是html文件 */
app.use("/public",express.static(path.join(__dirname,"./public")));
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());


//添加一个拦截器
app.use((req,resp,next)=>{
    //所有的请求都会经过这个拦截器
    // console.log("经过拦截器了"+new Date().toLocaleString());   
    //判断一下它有没有登陆，如果没有登陆，我就不放行，如果登陆了，我就放行
    if(req.session.stuInfo!=undefined){
        next();    //拦截器放行，继续往后面走
    }else{
        if(req.path=="/Stu_h1802/login"||req.path=="/Stu_h1802/checkLogin"){
            //说明，你本来就是要去登陆的，放行
            next();
        }else{
            //没有登陆的，就跳转到登陆页去登陆
            resp.redirect("/Stu_h1802/login");
        }
    }
})

//加载路由
app.use("/Stu_h1802",Stu_h1802Router);


app.get("/adminIndex",(req,resp)=>{
    let stuInfo = req.session.stuInfo;//从“保险箱”里面，拿出刚刚登陆的时候，存入进去的东西
    resp.render("admin/adminIndex",{menuConfig:menuConfig,stuInfo:stuInfo});
})

app.get("/",(req,resp)=>{
    resp.redirect("/Stu_h1802/login");
})


let server =  http.createServer(app);/**把程序框架丢到http中 */
/**http开始监听 */
server.listen(8888,()=>{
    console.log("服务器启动成功");
})